package com.yonyou.pmclouds.plantemplate.rmiitf;

import com.yonyou.pmclouds.basecom.exception.BusinessException;
import com.yonyou.pmclouds.plantemplate.entity.ScheduleTemplateItemVO;

import java.util.List;
import java.util.Map;

public interface IScheduleTemplateItemQueryService {

    /**
     * 通过根结点主键查询所有任务项
     * @param pkRoots 根结点主键
     * @return 全部任务项
     */
    List<ScheduleTemplateItemVO> queryByPkRoots(String[] pkRoots) throws BusinessException;

    /**
     * 根据任务主键查询任务项，附带子级节点
     * @param pkItems 任务项主键
     * @return 任务项
     */
    List<ScheduleTemplateItemVO> queryByPkItems(String[] pkItems) throws BusinessException;

    /**
     * 根据计划主键查询所有任务项
     * @param pkSchedules 计划主键
     * @return key为计划主键，value为该计划下的任务项
     */
    Map<String, List<ScheduleTemplateItemVO>> queryByPkSchedules(String[] pkSchedules) throws BusinessException;

    /**
     * 根据计划主键查询所有任务项，按根节点进行汇总，只返回根结点，子节点在父节点下
     * @param pkSchedules 计划主键
     * @return key为计划主键，value为该计划下的任务项
     */
    Map<String, List<ScheduleTemplateItemVO>> queryByPkSchedulesOnlyRoot(String[] pkSchedules) throws BusinessException;
}
